package com.sy.utils;

import com.sy.entity.UserPermit;
import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

import static com.sy.constant.BusinessConstant.DEFAULT_PERMIT_VALUE;
import static com.sy.constant.BusinessConstant.PERMIT_VALUE;

/**
 * @author zbbstart
 * @date 2021/1/31 - 23:36
 */
public class QaSystemUtils {
    private QaSystemUtils(){

    }

    public static String getUserPermits(UserPermit userPermit){
        StringBuilder sb = new StringBuilder();
        if (userPermit.getUpdatePwd() == 1){
            sb.append("修改密码 ");
        }
        if (userPermit.getCreate() == 1){
            sb.append(" 创建问卷 ");
        }
        if (userPermit.getDel() == 1){
            sb.append(" 删除问卷 ");
        }
        if (userPermit.getAnswer() == 1){
            sb.append(" 答问卷 ");
        }
        if (userPermit.getCheck() == 1){
            sb.append(" 查看调查问卷结果统计");
        }
        if (userPermit.getUpdatePwd() == 0 && userPermit.getCreate() == 0 && userPermit.getDel() == 0
        && userPermit.getAnswer() == 0 && userPermit.getCheck() == 0){
            sb.append("无");
        }
        return sb.toString();
    }
    /**
     * 返回用户权限
     */
    public static UserPermit getUserPermit(List<Integer> roleIds,Integer userId){
        UserPermit userPermit = new UserPermit();
        userPermit.setUserId(userId);
        if (CollectionUtils.isEmpty(roleIds)){
            userPermit.setUpdatePwd(DEFAULT_PERMIT_VALUE);
            userPermit.setAnswer(DEFAULT_PERMIT_VALUE);
            userPermit.setCreate(DEFAULT_PERMIT_VALUE);
            userPermit.setDel(DEFAULT_PERMIT_VALUE);
            userPermit.setCheck(DEFAULT_PERMIT_VALUE);
        }else {
            if (roleIds.contains(1)){
                userPermit.setUpdatePwd(PERMIT_VALUE);
            }else {
                userPermit.setUpdatePwd(DEFAULT_PERMIT_VALUE);
            }
            if (roleIds.contains(2)){
                userPermit.setCreate(PERMIT_VALUE);
            }else {
                userPermit.setCreate(DEFAULT_PERMIT_VALUE);
            }
            if (roleIds.contains(3)){
                userPermit.setDel(PERMIT_VALUE);
            }else {
                userPermit.setDel(DEFAULT_PERMIT_VALUE);
            }
            if (roleIds.contains(4)){
                userPermit.setAnswer(PERMIT_VALUE);
            }else {
                userPermit.setAnswer(DEFAULT_PERMIT_VALUE);
            }
            if (roleIds.contains(5)){
                userPermit.setCheck(PERMIT_VALUE);
            }else {
                userPermit.setCheck(DEFAULT_PERMIT_VALUE);
            }
        }
        return userPermit;
    }

    public static List<Integer> getUserRoleIds(UserPermit userPermit){
        List<Integer> roleIds = new ArrayList<>();
        if (userPermit.getUpdatePwd() == 1){
            roleIds.add(1);
        }
        if (userPermit.getCreate() == 1){
            roleIds.add(2);
        }
        if (userPermit.getDel() == 1){
            roleIds.add(3);
        }
        if (userPermit.getAnswer() == 1){
            roleIds.add(4);
        }
        if (userPermit.getCheck() == 1){
            roleIds.add(5);
        }
        return roleIds;
    }

}
